ECS Anywhere 用のタスク定義をマネジメントコンソールから作成する方法を教えてください
困っていた内容
ECS Anywhere でタスクを実行したいです。
マネジメントコンソールの「タスク定義の作成」では起動タイプ「EXTERNAL」が選択肢にありません。
ECS Anywhere 用のタスク定義はマネジメントコンソールからは作成できないのでしょうか。
作成する方法があれば教えてください。
どう対応すればいいの?
「JSON を使用した新しいタスク定義の作成」から作成してください。
2024年10月時点で、AWS マネジメントコンソールから ECS Anywhere 用のタスク定義を作成するには、JSON エディタを使用する必要があります。
やってみた
Amazon ECS コンソールの「タスク定義」から、「新しいリビジョンの作成」→「JSON を使用した新しいタスク定義の作成」をクリックします。
定義(赤枠で囲った部分)に、次のコードを参考に ECS タスク定義を入力します。
{
"requiresCompatibilities": [
"EXTERNAL"
],
"containerDefinitions": [{
"name": "nginx",
"image": "public.ecr.aws/nginx/nginx:latest",
"memory": 256,
"cpu": 256,
"essential": true,
"portMappings": [{
"containerPort": 80,
"hostPort": 8080,
"protocol": "tcp"
}]
}],
"networkMode": "bridge",
"family": "Example-ECS-Anywhere-Task-Definition"
}
awslogs 設定版
{
"requiresCompatibilities": [
"EXTERNAL"
],
"containerDefinitions": [{
"name": "nginx",
"image": "public.ecr.aws/nginx/nginx:latest",
"memory": 256,
"cpu": 256,
"essential": true,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/Example-ECS-Anywhere-Task-Definition",
"mode": "non-blocking",
"awslogs-create-group": "true",
"max-buffer-size": "25m",
"awslogs-region": "ap-northeast-1",
"awslogs-stream-prefix": "ecs"
}
},
"portMappings": [{
"containerPort": 80,
"hostPort": 8080,
"protocol": "tcp"
}]
}],
"networkMode": "bridge",
"family": "Example-ECS-Anywhere-Task-Definition",
"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole"
}
「作成」をクリックします。
タスク定義が正常に作成されたことを確認します。
参考資料
コンソールを使用して外部インスタンスタスク定義を作成する場合は、コンソール JSON エディタでタスク定義を作成する必要があります。